#include <iostream>
using std::cout;
using std::endl;
//希望对象可以像函数一样被调用
class IsGreatThan{
public:
    //利用构造函数设定阈值
    IsGreatThan(int threshold)
    :_threshold(threshold)
    {

    }

    //重载函数调用运算符
    bool operator()(int value){
        return value > _threshold;
    }

private:
    //设定的一个阈值
    int _threshold;
};


void test(){
    IsGreatThan igt(20);
    //传递的值比阈值大还是比阈值小
    //函数调用运算符和普通的成员函数有什么区别？？
    //其实区别很小，只是认为函数调用运算符重载了之后，那么该对象
    //一般就只有唯一的一个功能，就不会再有其他的成员函数了
    //如果某个类对象有众多的功能，此时编写成员函数非常合适
    cout << igt(14) << endl;
    cout << igt(214) << endl;
}

int main()
{
    test();
    return 0;
}

